package com.ruoyi.exam.vo;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.util.List;

/**
 * 每周打卡情况Vo对象
 *
 * @author Tellsea
 * @date 2025-10-16
 */
@Data
@Accessors(chain = true)
@ApiModel("每周打卡情况")
public class WeeklyCheckInVo implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty("打卡日期列表（周一到周日）")
    private List<DailyCheckInVo> dailyCheckIns;

    @ApiModelProperty("本周打卡天数")
    private Integer checkInDays;

    @ApiModelProperty("本周连续打卡天数")
    private Integer continuousDays;

    /**
     * 每日打卡信息
     */
    @Data
    @Accessors(chain = true)
    @ApiModel("每日打卡信息")
    public static class DailyCheckInVo implements Serializable {

        private static final long serialVersionUID = 1L;

        @ApiModelProperty("日期（yyyy-MM-dd）")
        private String date;

        @ApiModelProperty("星期几（1-7，1表示周一）")
        private Integer dayOfWeek;

        @ApiModelProperty("星期几文本（周一、周二...）")
        private String dayOfWeekText;

        @ApiModelProperty("是否打卡（true已打卡 false未打卡）")
        private Boolean isCheckedIn;

        @ApiModelProperty("答题数量")
        private Integer questionCount;
    }
}

